package com.lekang.system.domain;

import com.lekang.common.core.domain.BaseEntity;
import com.lekang.system.domain.NursingItem;
import com.lekang.system.domain.NursingItemPlanBinding;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

import java.util.List;
import java.math.BigDecimal;

/**
 * 护理计划对象 nursing_plan
 *
 *
 * @date 2025-10-13
 */
public class NursingPlan extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 计划名称 */
    @Excel(name = "计划名称")
    private String planName;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long creator;

    public String getCreatorName() {
        return creatorName;
    }


    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    /** 创建人 */
    @Excel(name = "创建人姓名")
    private String creatorName;

    private List<NursingItemPlanBinding> nursingItemPlanBindingList;

    public List<NursingItemPlanBinding> getNursingItemPlanBindingList() {
        return nursingItemPlanBindingList;
    }

    public void setNursingItemPlanBindingList(List<NursingItemPlanBinding> nursingItemPlanBindingList) {
        this.nursingItemPlanBindingList = nursingItemPlanBindingList;
    }

    /** 状态(0:禁用 1:启用) */
    @Excel(name = "状态(0:禁用 1:启用)")
    private Long status;

    /** 逻辑删除 */
    @Excel(name = "逻辑删除")
    private Long isDeleted;

    /** 额外字段1 */
    @Excel(name = "额外字段1")
    private String extraField1;

    /** 额外字段2 */
    @Excel(name = "额外字段2")
    private String extraField2;

    /** 护理项目计划绑定列表 */
    private List<NursingItem> nursingItemList;

    /** 非持久化字段：30天总价（根据护理项目绑定+执行规则计算） */
    private BigDecimal totalPrice;

    public List<NursingItem> getNursingItemList() {
        return nursingItemList;
    }

    public void setNursingItemList(List<NursingItem> nursingItemList) {
        this.nursingItemList = nursingItemList;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setPlanName(String planName)
    {
        this.planName = planName;
    }

    public String getPlanName()
    {
        return planName;
    }

    public void setCreator(Long creator)
    {
        this.creator = creator;
    }

    public Long getCreator()
    {
        return creator;
    }

    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }

    public void setIsDeleted(Long isDeleted)
    {
        this.isDeleted = isDeleted;
    }

    public Long getIsDeleted()
    {
        return isDeleted;
    }

    public void setExtraField1(String extraField1)
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1()
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2)
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2()
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("planName", getPlanName())
                .append("creator", getCreator())
                .append("createTime", getCreateTime())
                .append("status", getStatus())
                .append("isDeleted", getIsDeleted())
                .append("extraField1", getExtraField1())
                .append("extraField2", getExtraField2())
                .append("totalPrice", getTotalPrice())
                .toString();
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }
}
